home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
- Serial Fix © 1993
- by Medical Designs Software
- Version 2.0
-
- Written by: Bill Penner and Bruce D. Noonan, M.D.
-
-
- This program may be distributed and used, free of charge, provided
- that the program is distributed in complete form and UNmodified. This
- software is not to be sold, however, may be included on disks which are
- sold for a small handling fee. Medical Design Software retains all
- copyright exclusive rights except exclusive distribution. This
- software consists of the following files: SERFX20.PRG, SERIALFX.CPX,
- and SERIALFX.DOC (this file).
-
-
-
- PURPOSE
-
- Serial Fix is now a universal serial port patch for use on the
- ATARI ST/STe/TT computers. Serial Fix now incorporates the TOS14FIX
- and SERPATCH patches from ATARI, so no longer do you need several patch
- programs. A problem in the serial port software appears when a high
- speed or high speed buffered modem is used in conjunction with ZMODEM
- or any near-continuous flow transfer program. The ST/TT has problems
- properly recognizing when the modem deasserts CTS (telling the ST/TT
- that the buffer is full and don't send any more data), resulting in the
- ST overflowing the modem's buffer. This results in bad data being sent
- which results in CRC errors, packet size problems, and other data
- transmission errors.
-
- TurboCTS (an old program of mine) was only a partial fix of the
- problem. TurboCTS did manage to speed things up to the point where CTS
- response was generally ok, however, that program did not work on the
- TT, did not support XBRA programming requirements, and only worked for
- RTS/CTS handshaking.
-
- Serial FIX works with all versions of TOS from 1.0 through 3.06 and
- FALCON TOS. Serial FIX supports both RTS/CTS, XON/XOFF, and no
- handshaking modes. The desired handshaking mode is set from the RS232
- control panel or other program as you currently do now. Simultaneous
- XON/XOFF and RTS/CTS can be selected by locking the RTS/CTS mode on in
- the SERIALFX CPX and selecting XON/XOFF from the control panel/RS232
- CPX. This is a REAL fix to the RTS/CTS problem. Previous fixes (like
- my TurboCTS) only fixed some of the symptoms of the problem.
-
- INSTALLATION:
-
- Serial FIX is composed of two parts, a program for the AUTO folder
- and a CPX file to be used with the extensible CONTROL (XCONTROL.ACC)
- panel.
-
-
-
-
-
-
-
-
-
-
-
-
-
- SERFX20.PRG is the heart of the Serial FIX solution. SERFX20.PRG
- is intended to be installed in your AUTO folder, although it can be ran
- from the desktop. Serial FIX replaces the current serial routines for
- the ST compatible port. The ST compatible port is the only port on the
- ST and STe machines, or the Modem 1 port on the MegaSTe and TT
- machines.
-
- SERIALFX.CPX is a control panel to be used with the extensible
- control panel (XCONTROL.ACC). The CPX is used to lock the serial
- routines into using RTS/CTS handshaking, regardless of the desires of a
- program. The file SERIALFX.CPX is to be placed in in your folder of
- CPX files (often called 'CPX').
-
- OPERATION:
-
- SERFX20.PRG: Once the program has been started (either booted in
- the 'AUTO' folder or run from the desktop), no special operations are
- needed. The program replaces the system routines and the port speed
- and handshaking are set just as they are now, either by terminal
- software, CONTROL panel, or the extensible control panel.
-
- SERIALFX.CPX: This program will allow you to lock the handshaking
- in RTS/CTS mode. This is often needed because a number of programs
- have been written to ignore RTS/CTS mode (like FLASH). If the CPX is
- not used to lock the mode on, if the mode is set from the control
- panel, and a terminal program is started, very likely, the program
- would turn off RTS/CTS. With the mode locked, the program will be
- unable to disable RTS/CTS. The CPX will give you the option to save
- the current lock setting. Saving the setting will cause the selected
- mode to be entered every time the CPX boots up. So, note, to be able
- to lock the RTS/CTS mode on, you must use both the SERFX20.PRG and the
- SERIALFX.CPX.
-
-
- MODEM PROBLEMS:
-
- If you are having problems getting RTS/CTS to work with your modem,
- you need to check a few things:
-
- 1. Modem: You will need to verify that the modem is set up to
- use RTS/CTS. For error correcting/compression modems the command us
- usually 'AT&K3' to enable RTS/CTS mode. Remember, when you get your
- modem working, be sure to save the configuration into the modem with an
- 'AT&W'. If your modem is a non-error correcting/compression type,
- RTS/CTS may not be desired as most of the modems do not really support
- RTS/CTS, and besides, it is not necessary since the modem does not
- buffer data. For most modems, if you wish to check to see what the
- settings are, use a terminal program and type 'AT&V' and the modem will
- display the current settings. Verify the &K option has a 3 shown (i.e.
- &K3) is shown in the active configuration portion of the display. If
- you type the AT&V and the modem replies ERROR, then that command is not
- supported and you will have to check the documentation with the modem
- to determine how to verify the setting.
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2. Cable: Most manufactured RS232 cables should not be a
- problem, but some commercial cables and home built cables may not have
- the RTS and CTS pins connected. For RTS/CTS to work, the RTS pins (pin
- 4) and CTS pins (pin 5) need to be connected through the cable. If you
- want to check the cable and are familiar with the use of a meter in
- doing a continuity test, verify that the pin 4s on the two connectors
- are connected together, the pin 5's are connected together, and that
- the pin 4's are NOT connected to the pin 5's.
-
- 3. Software incompatiblity: If you are still having problems, try
- removing all other AUTO folder programs and ACCESORIES (except
- SERFX20.PRG and XCONTROL.ACC). If things still do not work, you may
- have a hardware problem.
-
- 4. Hardware Problem: If you have checked everything above, and
- RTS/CTS is still not working, you may have a hardware problem. It is
- possible that the RTS or CTS circuitry in the computer or in the modem
- may have failed. Attempt to use the modem on another computer and/or a
- different modem on your computer to verify whether the problem is in
- the modem or the computer.
-
- 5. Last (and hopefully LEAST) possiblity is that there is a bug
- in my software (or an undocumented, possibly undesirable, feature, as
- some call it). Let me know if you cannot get SERIALFX to work and I'll
- see what help I can provide.
-
-
- PROGRAMMING INFORMATION:
-
- This version of the software is fully XBRA compliant. When the
- software starts and installs the replacement routines, the TOS version
- is checked to determine the best method of installation (read for
- maximum speed). Under TOS 1.0, traps 1, 13, and 14 are intercepted and
- processed. Under TOS 1.2, 1.4, and 1.6 (non-Bconmap() compatible
- machines after 1.2), the xcon vector table is used, and only trap 14 is
- used to receive Rsconf() calls. Under Bconmap() compatiable systems,
- bconmap (port 6) and xcon vectors are modified so that no trap
- interception is necessary.
-
- Other software can be used to lock or unlock the serial routines.
- To perform this function, look in the cookie jar for a 'MDSa' cookie.
- The long data byte is a pointer to the following data structure:
-
- struct {
- int lockfg; /* RTS/CTS locked flag (bit 1 = locked) */
- int (*setlock)(); /* Routine to set lock status */
- char bcon[6]; /* Flag for following table = "BCON" */
- int (*auxistat)(); /* AUX port input status routine */
- int (*auxin)(); /* AUX port input character routine */
- int (*auxostat)(); /* AUX port output status routine */
- int (*auxout)(); /* AUX port output character routine */
- long (*rsconf)(); /* Rsconf() routine for AUX port */
- struct *iorec; /* Pointer to Iorec buffer */
- } serfx;
-
-
-
-
-
-
-
-
-
-
-
-
-
- The lock status is set by pushing an integer with the value of either 0
- (to disable lock) or 1 (to enable) and then jsr'ing the setlock routine
- (i.e. (*serfx->setlock)(1) to enable the lock). The call can be made
- in user or super mode.
-
- Direct access to the ST compatible serial port. This is intended to
- provide faster access to serial routines on systems running an older
- version of TOS. Access to the routines is the same as accessing
- current Bconmap compatible routines.
-
-
- WRAP UP
-
- As normal, PLEASE let me know if you have any problems with the
- program. I have attempted to make the program as compatible with other
- software as possible.
-
- Bill Penner
- 3235 Wright Avenue
- Bremerton, WA 98310-4753
-
- Phone: (206) 373-4840 (before 9pm Pacific)
- GEnie: BPENNER
-
-
- CHANGES SINCE VERSION 1.0
-
- Two bugs that were discovered were fixed. Both bugs would only
- occur if no cookie jar was found. One bug resulted in creating a
- cookie jar that was full of garbage and the other would not build a
- cookie jar. The second bug was the more common, which would result in
- the CPX reporting that the program was not loaded. Running the
- SERIALFX.PRG program a second time often worked to fix the problem.
-
- CHANGES SINCE VERSION 1.1
-
- Two more bugs were found that prevented the software from being
- loaded on some systems and a couple of obscure problems were fixed.
- SERPATCH and TOS14FIX routines have been incorporated to make SERIALFX
- a universal patch. A new vector table was added for people who wanted
- to have faster access to the original ST serial port so that software
- can directly interface to the serial routines (as with newer versions
- of TOS) to bypass the overhead in exception vector execution.
- SERFX20.PRG replaces the older SERIALFX.PRG.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-